home *** CD-ROM | disk | FTP | other *** search
- unit Main;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ImgList, Menus, ComCtrls, ToolWin, OleCtrls, ActiveX, NCTAUDIOEDITOR2Lib_TLB;
-
- type
- TfrmMain = class(TForm)
- CoolBar1: TCoolBar;
- ToolBar1: TToolBar;
- btnNew: TToolButton;
- btnOpen: TToolButton;
- btnSave: TToolButton;
- ToolButton5: TToolButton;
- btnOptions: TToolButton;
- ToolButton7: TToolButton;
- btnCopy: TToolButton;
- btnCut: TToolButton;
- btnPaste: TToolButton;
- btnPasteMix: TToolButton;
- ToolButton12: TToolButton;
- btnUndo: TToolButton;
- btnRedo: TToolButton;
- ToolButton15: TToolButton;
- btnZoomIn: TToolButton;
- btnZoomOut: TToolButton;
- btnZoomFull: TToolButton;
- ToolButton19: TToolButton;
- btnPlay: TToolButton;
- btnPlayEnd: TToolButton;
- btnPlayLoop: TToolButton;
- btnRecord: TToolButton;
- btnPause: TToolButton;
- btnContinue: TToolButton;
- btnStop: TToolButton;
- ToolButton27: TToolButton;
- btnLChannel: TToolButton;
- btnRChannel: TToolButton;
- ToolButton30: TToolButton;
- btnAGC: TToolButton;
- ToolBar2: TToolBar;
- btnInvert: TToolButton;
- btnDeleteSilence: TToolButton;
- btnAmplifyPlus: TToolButton;
- btnAmplifyMinus: TToolButton;
- btnFadeIn: TToolButton;
- btnFadeOut: TToolButton;
- btnNormalize: TToolButton;
- ToolButton39: TToolButton;
- btnFlanger: TToolButton;
- btnVibrato: TToolButton;
- btnDelay: TToolButton;
- ToolButton43: TToolButton;
- btnNF: TToolButton;
- btnBPF: TToolButton;
- btnHPF: TToolButton;
- btnLPF: TToolButton;
- btnHSF: TToolButton;
- btnLSF: TToolButton;
- btnFFT: TToolButton;
- ToolButton52: TToolButton;
- btnInserSilence: TToolButton;
- MainMenu1: TMainMenu;
- mnuFile: TMenuItem;
- mnuNew: TMenuItem;
- mnuOpen: TMenuItem;
- N1: TMenuItem;
- mnuConvertSampleType: TMenuItem;
- N2: TMenuItem;
- mnuSaveAs: TMenuItem;
- mnuSaveSelectAs: TMenuItem;
- N3: TMenuItem;
- mnuExit: TMenuItem;
- StatusBar1: TStatusBar;
- ProgressBar1: TProgressBar;
- ProgressBar2: TProgressBar;
- ImageList1: TImageList;
- ImageList2: TImageList;
- OpenDialog1: TOpenDialog;
- SaveDialog1: TSaveDialog;
- mnuView: TMenuItem;
- mnuWaveFormView: TMenuItem;
- mnuSpectralView: TMenuItem;
- N4: TMenuItem;
- mnuInfoList: TMenuItem;
- mnuMarkerList: TMenuItem;
- mnuEdit: TMenuItem;
- mnuCopy: TMenuItem;
- mnuCut: TMenuItem;
- mnuPaste: TMenuItem;
- nmuPasteFromFile: TMenuItem;
- N5: TMenuItem;
- mnuCopytoWindowsClipboard: TMenuItem;
- mnuPastefromWindowsClipboard: TMenuItem;
- N6: TMenuItem;
- mnuMix: TMenuItem;
- mnuMixFromFile: TMenuItem;
- N7: TMenuItem;
- mnuInsertSilence: TMenuItem;
- mnuDeleteSilence: TMenuItem;
- mnuOperation: TMenuItem;
- mnuAmplifyPlus: TMenuItem;
- mnuAmplifyMinus: TMenuItem;
- mnuFadeIn: TMenuItem;
- mnuFadeOut: TMenuItem;
- mnuNormalize: TMenuItem;
- N8: TMenuItem;
- mnuInvert: TMenuItem;
- mnuFlanger: TMenuItem;
- mnuDelay: TMenuItem;
- mnuVibrato: TMenuItem;
- N9: TMenuItem;
- mnuStretchPlus: TMenuItem;
- mnuStretchMinus: TMenuItem;
- mnuFilters: TMenuItem;
- mnuNotch: TMenuItem;
- mnuBandPass: TMenuItem;
- mnuLowPass: TMenuItem;
- mnuHighPass: TMenuItem;
- mnuHighShelf: TMenuItem;
- mnuLowShelf: TMenuItem;
- mnuFFT: TMenuItem;
- mnuHelp: TMenuItem;
- mnuAbout: TMenuItem;
- mnuInputDevice: TMenuItem;
- mnuOutputDevice: TMenuItem;
- N10: TMenuItem;
- mnuOptions: TMenuItem;
- Tools1: TMenuItem;
- AudioEditor1: TAudioEditor2;
- procedure btnOpenClick(Sender: TObject);
- procedure btnContinueClick(Sender: TObject);
- procedure btnPauseClick(Sender: TObject);
- procedure btnZoomFullClick(Sender: TObject);
- procedure btnRecordClick(Sender: TObject);
- procedure btnStopClick(Sender: TObject);
- procedure btnPlayClick(Sender: TObject);
- procedure btnPlayEndClick(Sender: TObject);
- procedure btnPlayLoopClick(Sender: TObject);
- procedure btnUndoClick(Sender: TObject);
- procedure btnRedoClick(Sender: TObject);
- procedure btnCopyClick(Sender: TObject);
- procedure btnCutClick(Sender: TObject);
- procedure btnPasteClick(Sender: TObject);
- procedure btnPasteMixClick(Sender: TObject);
- procedure btnNewClick(Sender: TObject);
- procedure btnSaveClick(Sender: TObject);
- procedure btnZoomInClick(Sender: TObject);
- procedure btnZoomOutClick(Sender: TObject);
- procedure AudioEditor1Meter(Sender: TObject; LevelLeft: Integer; LevelRight: Integer);
- procedure AudioEditor1ScaleXClick(Sender: TObject);
- procedure AudioEditor1ScaleYClick(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure AudioEditor1ChangePosition(Sender: TObject);
- procedure btnDelayClick(Sender: TObject);
- procedure btnBPFClick(Sender: TObject);
- procedure btnVibratoClick(Sender: TObject);
- procedure btnLSFClick(Sender: TObject);
- procedure btnLPFClick(Sender: TObject);
- procedure btnHSFClick(Sender: TObject);
- procedure btnHPFClick(Sender: TObject);
- procedure btnInserSilenceClick(Sender: TObject);
- procedure btnNFClick(Sender: TObject);
- procedure btnFlangerClick(Sender: TObject);
- procedure btnAmplifyMinusClick(Sender: TObject);
- procedure btnAmplifyPlusClick(Sender: TObject);
- procedure btnDeleteSilenceClick(Sender: TObject);
- procedure btnInvertClick(Sender: TObject);
- procedure btnFadeOutClick(Sender: TObject);
- procedure btnFadeInClick(Sender: TObject);
- procedure btnNormalizeClick(Sender: TObject);
- procedure btnFFTClick(Sender: TObject);
- procedure btnAGCClick(Sender: TObject);
- procedure mnuSaveSelectAsClick(Sender: TObject);
- procedure mnuWaveFormViewClick(Sender: TObject);
- procedure mnuSpectralViewClick(Sender: TObject);
- procedure mnuCopytoWindowsClipboardClick(Sender: TObject);
- procedure mnuPastefromWindowsClipboardClick(Sender: TObject);
- procedure nmuPasteFromFileClick(Sender: TObject);
- procedure mnuMixFromFileClick(Sender: TObject);
- procedure mnuExitClick(Sender: TObject);
- procedure mnuStretchPlusClick(Sender: TObject);
- procedure mnuStretchMinusClick(Sender: TObject);
- procedure btnLChannelClick(Sender: TObject);
- procedure mnuInfoListClick(Sender: TObject);
- procedure mnuMarkerListClick(Sender: TObject);
- procedure mnuConvertSampleTypeClick(Sender: TObject);
- procedure mnuInputDeviceClick(Sender: TObject);
- procedure mnuOutputDeviceClick(Sender: TObject);
- procedure btnOptionsClick(Sender: TObject);
- procedure mnuAboutClick(Sender: TObject);
- procedure AudioEditor1BlockOperation(Sender: TObject;
- Percent: Smallint);
- procedure AudioEditor1EndOperation(Sender: TObject);
- private
- { Private declarations }
- procedure SetPosition;
- procedure SetParam;
- public
- { Public declarations }
- end;
-
- var
- frmMain: TfrmMain;
-
- implementation
-
- uses Vox, Raw, Info, CueList, Convert, Devices, Setup, About;
-
- {$R *.dfm}
-
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnOpenClick(Sender: TObject);
- begin
- if (OpenDialog1.Execute()) then begin
- if (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.vox') then frmVox.ShowModal();
- if (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.raw') Or (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.pcm') then frmRaw.ShowModal();
- AudioEditor1.Open(StringToOleStr(OpenDialog1.FileName),DEFAULT);
- SetParam();
- end;
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnContinueClick(Sender: TObject);
- begin
- AudioEditor1.Continue();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPauseClick(Sender: TObject);
- begin
- AudioEditor1.Pause();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnZoomFullClick(Sender: TObject);
- begin
- AudioEditor1.ZoomFull();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnRecordClick(Sender: TObject);
- begin
- AudioEditor1.Record_(RECORD_MIX);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnStopClick(Sender: TObject);
- begin
- AudioEditor1.Stop();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPlayClick(Sender: TObject);
- begin
- AudioEditor1.Play(NORMALPLAY);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPlayEndClick(Sender: TObject);
- begin
- AudioEditor1.Play(PLAYTOEND);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPlayLoopClick(Sender: TObject);
- begin
- AudioEditor1.Play(PLAYLOOPED);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnUndoClick(Sender: TObject);
- begin
- AudioEditor1.Undo();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnRedoClick(Sender: TObject);
- begin
- AudioEditor1.Redo();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnCopyClick(Sender: TObject);
- begin
- AudioEditor1.Copy();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnCutClick(Sender: TObject);
- begin
- AudioEditor1.Cut();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPasteClick(Sender: TObject);
- begin
- AudioEditor1.Paste();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnPasteMixClick(Sender: TObject);
- begin
- AudioEditor1.Mix(50,50);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnNewClick(Sender: TObject);
- begin
- AudioEditor1.New(FQ_44_KHZ, STEREO);
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.btnSaveClick(Sender: TObject);
- begin
- if (SaveDialog1.Execute()) then begin
- if (SaveDialog1.FilterIndex = 1) then AudioEditor1.FileFormat.SetFormatFromMenu();
- AudioEditor1.Save(StringToOleStr(SaveDialog1.FileName),False,DEFAULT);
- OpenDialog1.FileName := SaveDialog1.FileName;
- SetParam();
- end;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnZoomInClick(Sender: TObject);
- begin
- AudioEditor1.ZoomIn();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnZoomOutClick(Sender: TObject);
- begin
- AudioEditor1.ZoomOut();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.AudioEditor1Meter(Sender: TObject; LevelLeft: Integer; LevelRight: Integer);
- begin
- ProgressBar1.Position := LevelLeft;
- ProgressBar2.Position := LevelRight;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.AudioEditor1ScaleXClick(Sender: TObject);
- begin
- ShowMessage('Click Scale X');
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.AudioEditor1ScaleYClick(Sender: TObject);
- begin
- ShowMessage('Click Scale Y');
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.SetPosition;
- begin
- StatusBar1.Panels.Items[3].Text := IntToStr(AudioEditor1.Position.StartView);
- StatusBar1.Panels.Items[4].Text := IntToStr(AudioEditor1.Position.EndView);
-
- StatusBar1.Panels.Items[5].Text := IntToStr(AudioEditor1.Position.StartSelect);
- StatusBar1.Panels.Items[6].Text := IntToStr(AudioEditor1.Position.EndSelect);
- StatusBar1.Refresh();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.SetParam;
- begin
- StatusBar1.Panels.Items[0].Text := OpenDialog1.FileName;
- StatusBar1.Panels.Items[1].Text := AudioEditor1.FileInfo.FormatString;
- StatusBar1.Panels.Items[2].Text := IntToStr(AudioEditor1.Position.TotalSamples);
- ProgressBar1.Position := 0;
- ProgressBar2.Position := 0;
- SetPosition();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.FormShow(Sender: TObject);
- begin
- SetParam();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.AudioEditor1ChangePosition(Sender: TObject);
- begin
- SetPosition();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnDelayClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Delay(120, 30, 10);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnBPFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.BandPassFilter(AudioEditor1.FileInfo.Frequency / 100, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnVibratoClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Vibrato(25, 3, 0);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnLSFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.LowShelfFilter(AudioEditor1.FileInfo.Frequency / 200, -10, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnLPFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.LowPassFilter(AudioEditor1.FileInfo.Frequency / 50, 50);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnHSFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.HighShelfFilter(AudioEditor1.FileInfo.Frequency / 100, -10, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnHPFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.HighPassFilter(AudioEditor1.FileInfo.Frequency / 100, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnInserSilenceClick(Sender: TObject);
- begin
- AudioEditor1.Transform.InsertSilence(343);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnNFClick(Sender: TObject);
- begin
- AudioEditor1.Transform.NotchFilter(50, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnFlangerClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Flanger(50, 30, 10, 50, 5, 0);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnAmplifyMinusClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Amplify(60);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnAmplifyPlusClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Amplify(140);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnDeleteSilenceClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Silence();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnInvertClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Invert();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnFadeOutClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Fade(100, 0);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnFadeInClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Fade(0, 100);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnNormalizeClick(Sender: TObject);
- begin
- AudioEditor1.Transform.Normalize(80, True);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnFFTClick(Sender: TObject);
- var
- FFT: PSafeArray;
- kBass: Single;
- kTreble: Single;
- pFFT: array [0..511] of Single;
- i: Integer;
- begin
- kBass := -0.5;
- kTreble := 0.5;
-
- FFT := SafeArrayCreateVector(VT_R4,0,512);
-
- for i := 0 to 511 do pFFT[i] := 1;
- for i := 0 to 100 do pFFT[i] := pFFT[i] + (1 - i / 100) * kBass;
- for i := 101 to 511 do pFFT[i] := pFFT[i] + ((i - 100) / 411) * kTreble;
- for i := 0 to 511 do SafeArrayPutElement(FFT,i,pFFT[i]);
-
- AudioEditor1.Transform.FFTFilter(FFT);
- SafeArrayDestroy(FFT);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnAGCClick(Sender: TObject);
- begin
- AudioEditor1.Recorder.AGCEnabled := btnAGC.Down;
- end;
- //---------------------------------------------------------------------------
-
-
- procedure TfrmMain.mnuSaveSelectAsClick(Sender: TObject);
- begin
- if (SaveDialog1.Execute()) then begin
- if (SaveDialog1.FilterIndex = 1) then AudioEditor1.FileFormat.SetFormatFromMenu();
- AudioEditor1.Save(StringToOleStr(SaveDialog1.FileName),True,DEFAULT);
- SetParam();
- end;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuWaveFormViewClick(Sender: TObject);
- begin
- AudioEditor1.TypeView := WAVEFORM;
- mnuWaveFormView.Checked := True;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuSpectralViewClick(Sender: TObject);
- begin
- AudioEditor1.TypeView := SPECTRAL;
- mnuSpectralView.Checked := True;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuCopytoWindowsClipboardClick(Sender: TObject);
- begin
- AudioEditor1.CopyToClipboard();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuPastefromWindowsClipboardClick(Sender: TObject);
- begin
- AudioEditor1.PasteFromClipboard();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.nmuPasteFromFileClick(Sender: TObject);
- var
- fn: AnsiString;
- begin
- fn := OpenDialog1.FileName;
- if (OpenDialog1.Execute()) then AudioEditor1.PasteFromFile(StringToOleStr(OpenDialog1.FileName));
- OpenDialog1.FileName := fn;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuMixFromFileClick(Sender: TObject);
- var
- fn: AnsiString;
- begin
- fn := OpenDialog1.FileName;
- if (OpenDialog1.Execute()) then AudioEditor1.MixFromFile(50,StringToOleStr(OpenDialog1.FileName),50);
- OpenDialog1.FileName := fn;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuExitClick(Sender: TObject);
- begin
- Close();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuStretchPlusClick(Sender: TObject);
- begin
- AudioEditor1.Transform.TimeStretch(120);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuStretchMinusClick(Sender: TObject);
- begin
- AudioEditor1.Transform.TimeStretch(80);
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnLChannelClick(Sender: TObject);
- begin
- AudioEditor1.Channels.Num := 1;
- AudioEditor1.Channels.Visible := btnLChannel.Down;
- AudioEditor1.Channels.Num := 2;
- AudioEditor1.Channels.Visible := btnRChannel.Down;
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuInfoListClick(Sender: TObject);
- begin
- frmInfo.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuMarkerListClick(Sender: TObject);
- begin
- frmCueList.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuConvertSampleTypeClick(Sender: TObject);
- begin
- frmConvert.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuInputDeviceClick(Sender: TObject);
- begin
- frmDevices.Dev := frmMain.AudioEditor1.DeviceInput;
- frmDevices.srcCap := 'Select';
- frmDevices.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuOutputDeviceClick(Sender: TObject);
- begin
- frmDevices.Dev := frmMain.AudioEditor1.DeviceOutput;
- frmDevices.srcCap := 'Mute';
- frmDevices.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.btnOptionsClick(Sender: TObject);
- begin
- frmOptions.ShowModal();
- end;
- //---------------------------------------------------------------------------
-
- procedure TfrmMain.mnuAboutClick(Sender: TObject);
- begin
- frmAbout.ShowModal();
- end;
- //---------------------------------------------------------------------------
- procedure TfrmMain.AudioEditor1BlockOperation(Sender: TObject;
- Percent: Smallint);
- begin
- ProgressBar1.Position := Percent;
- ProgressBar2.Position := Percent;
- end;
-
- procedure TfrmMain.AudioEditor1EndOperation(Sender: TObject);
- begin
- ProgressBar1.Position := 0;
- ProgressBar2.Position := 0;
- end;
-
- end.
-